/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package gradius.Elementos.Naves;

import gradius.InterfaceGrafica.TelaGrafica;
import gradius.Elementos.Tipos.tipoNave;
import java.awt.Image;
import java.awt.Toolkit;
import java.net.URL;

/** Classe Factory que retorna instâncias do chefe. Também monta o vetor de imagens do chefe.
 * @author Eduardo
 */
public class ChefeFactory
{
    /** Construtor da classe ChefeFactory
     */
    private ChefeFactory()
    {
    }

    /** Método que retorna instâncias do chefe e monta o vetor de imagens para o chefe.
     * @param tela - Painel de desenho do jogo
     * @param tipo - Tipo de nave
     * @param coordX - Coordenada do eixo horizontal
     * @param coordY - Coordenada do eixo vertical
     * @return Nave - Retorna o chefe
     */
    public static Chefe getInstance(TelaGrafica tela, tipoNave tipo, int coordX, int coordY)
    {
        if (tipo == tipoNave.CHEFE1)
        {
            Image[] imagens = new Image[10];
            for (int i = 0; i < imagens.length; i++)
            {
                String filename = "/images/chefe1/c" + i + ".png";
                URL url = NaveFactory.class.getResource(filename);
                imagens[i] = Toolkit.getDefaultToolkit().getImage(url);
            }
            return new PrimeiroChefe(tela,imagens,coordX,coordY,200,90);
        }
        else if (tipo == tipoNave.CHEFE2)
        {
            Image[] imagens = new Image[10];
            for (int i = 0; i < imagens.length; i++)
            {
                String filename = "/images/chefe2/c" + i + ".png";
                URL url = NaveFactory.class.getResource(filename);
                imagens[i] = Toolkit.getDefaultToolkit().getImage(url);
            }
            return new SegundoChefe(tela,imagens,coordX,coordY,220,178);
        }
        else if (tipo == tipoNave.CHEFE3)
        {
            Image[] imagens = new Image[10];
            for (int i = 0; i < imagens.length; i++)
            {
                String filename = "/images/chefe3/c" + i + ".png";
                URL url = NaveFactory.class.getResource(filename);
                imagens[i] = Toolkit.getDefaultToolkit().getImage(url);
            }
            return new TerceiroChefe(tela,imagens,coordX,coordY,220,178);
        }
        else if (tipo == tipoNave.CHEFE4)
        {
            Image[] imagens = new Image[10];
            for (int i = 0; i < imagens.length; i++)
            {
                String filename = "/images/chefefinal/c" + i + ".png";
                URL url = NaveFactory.class.getResource(filename);
                imagens[i] = Toolkit.getDefaultToolkit().getImage(url);
            }
            return new ChefeFinal(tela,imagens,coordX,coordY,220,178);
        }
        return null;
    }
}
